<?php
require_once $_SERVER[DOCUMENT_ROOT].'/clientes/src/lib/db/ConnectionDB.php';

class PerfilEmpresario{
	
	//----------------------------------------------------------------------------
	//Constantes
	//----------------------------------------------------------------------------
	
	//----------------------------------------------------------------------------
	//Delimitador de la tabla
	//----------------------------------------------------------------------------
	
	/**
	 * El constrains de la clase
	 */
	private static $table_nombre = "perfil_empresario";
	private static $constrains = array(	array("id",             ConnectionDB::INT,					ConnectionDB::NOT_NULL, ConnectionDB::PRIMARY_KEY,	ConnectionDB::NO_DEFAULT_VALUE), 	//El id
										array("id_usuario",     ConnectionDB::INT,					ConnectionDB::NOT_NULL,	ConnectionDB::INDEX_KEY,	ConnectionDB::NO_DEFAULT_VALUE),	//El id del empresario
                                        array("id_mapa",        ConnectionDB::INT,          		ConnectionDB::NNULL,	ConnectionDB::NONE_KEY,		ConnectionDB::DEFAULT_VALUE),		//Acerca de la empresa
                                        array("foto",           ConnectionDB::STRING_COMMENT,		ConnectionDB::NNULL,	ConnectionDB::NONE_KEY, 	ConnectionDB::DEFAULT_VALUE),   	//El id del empresario
										array("acerca",         ConnectionDB::STRING_COMMENT,		ConnectionDB::NNULL,	ConnectionDB::NONE_KEY,		ConnectionDB::DEFAULT_VALUE),		//Acerca de la empresa
										array("presentacion",	ConnectionDB::STRING_LONG_COMMENT,	ConnectionDB::NNULL,	ConnectionDB::NONE_KEY,		ConnectionDB::DEFAULT_VALUE));		//La presentaci�n de la empresa

	//----------------------------------------------------------------------------
	//Atributos
	//----------------------------------------------------------------------------								
	
	/**
	 * Id del Perfil del Empresario
	 */
	private $id;

	/**
	 * Acerca del Empresario
	 */
	private $foto;

	/**
	 * Acerca del Empresario
	 */
	private $acerca;

	/**
	 * Presentaci�n de Empresario
	 */
	private $presentacion;
	
	/**
	 * Id de Usuario del Empresario
	 */
	private $id_usuario;

	/**
	 * Id del mapa
	 */
	private $id_mapa;
	
	/**
	 * V�nculo con la Tabla en la Base de Datos
	 */	
	private $tabla;
	
	//----------------------------------------------------------------------------
	//M�todo constructor
	//----------------------------------------------------------------------------
	
	public function __construct($id = 0, $id_usuario = 0, $foto = "", $acerca = "", $presentacion="", $id_mapa = 0){
		$this->id = $id;
		$this->id_usuario = $id_usuario;
		$this->id_mapa = $id_mapa;
        $this->foto = $foto;
		$this->acerca = $acerca;
		$this->presentacion = $presentacion;
		
		//Realiza lo debido a la base de datos
		$connection = new ConnectionDB($_SESSION['USER_NAME'],$_SESSION['USER_PASS']);
		$this->tabla = $connection->get_table(PerfilEmpresario::$table_nombre, PerfilEmpresario::$constrains);
	}
	
	//----------------------------------------------------------------------------
	//Getters y Setters B�sicos de la Clase
	//----------------------------------------------------------------------------

	/**
	 * Retorna el Id de la instancia
	 */
	public function get_id(){
		return $this->id;
	}


	/**
	 *Retorna el acerca del Empresario
	 */
	public function get_foto(){
		return $this->foto;
	}

	
	/**
	 *Retorna el acerca del Empresario
	 */
	public function get_acerca(){
		return $this->acerca;
	}

	/**
	 *Retorna la presentaci�n del Empresario
	 */
	public function get_presentacion(){
		return $this->presentacion;
	}
	
	/**
	 *Retorna el id del Empresario del Perfil
	 */
	public function get_id_usuario(){
		return $this->id_usuario;
	}

	/**
	 *Retorna el id del Empresario del Perfil
	 */
	public function get_id_mapa(){
		return $this->id_mapa;
	}

    /**
	 * Modifica la foto del empresario
	 */
	public function set_foto($foto){
		$this->foto = $foto;
	}

	/**
	 * Modifica el acerca del empresario
	 */
	public function set_acerca($acerca){
		$this->acerca = $acerca;
	}
	
	/**
	 * Modifica la presentaci�n del Empresario
	 */
	public function set_presentacion($presentacion){
		$this->presentacion = $presentacion;
	}

	/**
     * Modifica el id del mapa
	 */
	public function set_id_mapa($id_mapa){
		$this->id_mapa = $id_mapa;
	}
	
	//----------------------------------------------------------------------------
	//Busqueda en la Base de Datos
	//----------------------------------------------------------------------------
	
	public static function search_by_id_usuario($id_usuario){
		$perfil = new PerfilEmpresario();
		
		$params = array(array("id_usuario", $id_usuario));
		$response_id = 	$perfil->tabla->get_value_by_field("id", $params);
		
		$answer = array();
		
		foreach($response_id as $i => $value){
			$user = new PerfilEmpresario($response_id[$i]);
			$user->update_from_database_by_id();
			
			$answer[] = $user;
		}
		return $answer;
	}
	
	//----------------------------------------------------------------------------
	//Actualizaci�n con la Base de Datos
	//----------------------------------------------------------------------------
	
	/**
	 * Actualiza la informaci�n en la Base de Datos
	 */
	public function update_database(){
		//Revisa si existe y lo agrega
		$params = array(array("id_usuario",		$this->id_usuario));
		$this->tabla->update($params);
		$this->id = $this->tabla->get_id();
		
		//Actualiza los valores
		$parametros = array(	array("acerca",			$this->acerca),
								array("presentacion",	$this->presentacion),
                                array("foto",           $this->foto),
                                array("id_mapa",		$this->id_mapa)
                            );
		$this->tabla->update_by_id($this->id,$parametros);
	}
	
	/**
	 * Actualiza la informaci�n desde la Base de Datos seg�n el id
	 */
	public function update_from_database_by_id(){
		$params = array(array("id",$this->id));
		
		//Toma los valores
        $foto =     	$this->tabla->get_value_by_field("foto",		$params);
		$acerca =		$this->tabla->get_value_by_field("acerca",		$params);
		$presentacion =	$this->tabla->get_value_by_field("presentacion",$params);
		$id_usuario =   $this->tabla->get_value_by_field("id_usuario",  $params);
		$id_mapa =     $this->tabla->get_value_by_field("id_mapa",  $params);

        $this->foto = $foto[0];
		$this->acerca = $acerca[0];
		$this->presentacion = $presentacion[0];
		$this->id_usuario = $id_usuario[0];
		$this->id_mapa = $id_mapa[0];
	}
}
?>